package cn.tedu._04mybatis.mapper;

import cn.tedu._04mybatis.pojo.entity.Comment;
import cn.tedu._04mybatis.pojo.vo.CommentVO1;
import cn.tedu._04mybatis.pojo.vo.CommentVO2;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface CommentMapper {
    /**
     * 1.插入一条评论
     */
//    @Insert("INSERT INTO blog.comment(content,created,user_id,weibo_id) " +
//            "VALUES(#{content},#{created},#{userId},#{weiboId})")
    int insertComment(Comment comment);

    /**
     * 2.根据id删除一条评论
     */
//    @Delete("DELETE FROM blog.comment WHERE id=#{cid}")
    int deleteCommentById(int cid);

    /**
     * 3.根据id修改评论信息
     */
//    @Update("UPDATE blog.comment " +
//            "SET content=#{content},created=#{created},user_id=#{userId},weibo_id=#{weiboId} " +
//            "WHERE id=#{id}")
    int updateComment(Comment comment);

    /**
     * 4.根据评论的id查询评论: 内容,用户id,微博id
     */
//    @Select("SELECT content,user_id userId,weibo_id weiboId FROM blog.comment WHERE id=#{cid}")
    List<CommentVO1> selectCommentById1(int cid);

    /**
     * 5.根据微博的id查询评论: 评论内容,用户id
     */
//    @Select("SELECT content,user_id userId FROM blog.comment WHERE weibo_id=#{wid}")
    List<CommentVO2> selectCommentById2(int wid);

    /**
     * 6.动态删除评论: 以数组的方式
     */
    int deleteCommentByIds1(Integer[] ids);

    /**
     * 7.动态删除评论: List集合方式
     */
    int deleteCommentByIds2(List<Integer> ids);

    /**
     * 8.动态修改: 根据评论的id动态修改评论信息
     */
    int dynamicUpdateComment(Comment comment);

    /**
     * 9.统计评论的数量
     */
    int selectCommentCount();
}
